package com.cloudkinto.vo.order.outbound;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * @author long
 */
@Data
public class WaveRecheckDetail {

    @ApiModelProperty("出库id")
    private Long id;

    @ApiModelProperty("出库单号")
    private String outboundNo;

    @ApiModelProperty("跟踪物流号")
    private String trackingNo;

    @ApiModelProperty("客户编码")
    private String companyCode;

    @ApiModelProperty("客户名称")
    private String companyName;

    @ApiModelProperty("是否箱出库")
    private boolean boxOutboundFlag;

    @ApiModelProperty("产品已扫描")
    private Integer scannedProductQty;

    @ApiModelProperty("产品总数")
    private Integer productTotalQty;

    @ApiModelProperty("箱已扫描")
    private Integer scannedBoxQty;

    @ApiModelProperty("箱总数")
    private Integer boxTotalQty;

    @ApiModelProperty("包裹信息")
    private List<OutboundPackageDetail> outboundPackageList = new ArrayList<>();

    @ApiModelProperty("sku数据")
    private List<RecheckSkuItem> recheckSkuList;

    @ApiModelProperty("box数据")
    private List<RecheckBoxItem> recheckBoxList;

    @Data
    public static class RecheckSkuItem {

        @ApiModelProperty("产品id")
        private Long productId;

        @ApiModelProperty("图片地址")
        private String picUrl;

        @ApiModelProperty("sku")
        private String sku;

        @ApiModelProperty("janCode")
        private String janCode;

        @ApiModelProperty("产品名称")
        private String productName;

        @ApiModelProperty("是否需要包材")
        private Boolean needPack;

        @ApiModelProperty("推荐包材编码")
        private String recommendPackCode;

        @ApiModelProperty("推荐包材名称")
        private String recommendPackName;

        @ApiModelProperty("已扫")
        private Integer recheckQty;

        @ApiModelProperty("总数量")
        private Integer outboundQty;
    }

    @Data
    public static class RecheckBoxItem {

        @ApiModelProperty("箱号")
        private String boxTypeNumber;

        @ApiModelProperty("itfCode")
        private String itfCode;

        @ApiModelProperty("产品信息")
        private String skuInfo;

        @ApiModelProperty("已扫")
        private int recheckQty;

        @ApiModelProperty("总箱数")
        private int outboundQty;
    }
}
